<?php

namespace Mogod\Lib\Code;

/**
 *
 * Описание класса
 *
 * @author goorus, morph
 *
 */
class ClassDescription
{

	/**
	 * Разделитель неймспейса и класса
	 *
	 * @var string
	 */
	const NAMESPACE_DELIM = '\\';

	/**
	 * Имя файл
	 *
	 * @var string
	 */
	protected $file;

	/**
	 * Имя класса
	 *
	 * @var string
	 */
	protected $name;

	/**
	 * Пространство имен
	 *
	 * @var string
	 */
	protected $namespace;

	/**
	 * Возвращает файл, содержащий класс
	 *
	 * @return string
	 */
	public function getFile()
	{
		return $this->file;
	}

	/**
	 * Возвращает полное название класса (с неймспейсом)
	 *
	 * @return string
	 */
	public function getFullName()
	{
		return $this->namespace
			? $this->namespace . self::NAMESPACE_DELIM . $this->name
			: $this->name;
	}

	/**
	 * Возвращает название класса (без неймспейса)
	 *
	 * @return string
	 */
	public function getName()
	{
		return $this->name;
	}

	/**
	 * Возвращает неймспейс класса
	 *
	 * @return string
	 */
	public function getNamespace()
	{
		return $this->namespace;
	}

	public function setFile($file)
	{
		$this->file = $file;
		return $this;
	}

	/**
	 * Устанавливает имя класса
	 *
	 * @param string $name
	 * @return $this
	 */
	public function setName($name)
	{
		$this->name = $name;
		return $this;
	}

	/**
	 * Задание пространства имен
	 *
	 * @param string $namespace
	 * @return $this
	 */
	public function setNamespace($namespace)
	{
		$this->namespace = $namespace;
		return $this;
	}

}